"""

创建一个Celery对象

1. 任务
    ① 任务的包名中的 文件必须是 tasks.py  因为我们的celery可以自动检测任务,自动检测任务的时候,
        只检测tasks.py文件
    ② 任务其实就是一个函数
    ③ 这个任务 必须 被Celery的实例对象 的 task装饰器 装饰
2. broker

3. worker



"""
from celery import Celery

# import os
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mall.settings")

#进行Celery允许配置
# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mall.settings'

#以上设置 必须在 celery对象创建前

#创建Celery对象
# celery的第一个车参数: 一般区设置 celery的文件路径
# main的值 不重复就可以
app = Celery('celery_tasks')

# 设置broker
#config_from_object 填写配置信息的路径
app.config_from_object('celery_tasks.config')

# 让celery自动检测任务
# 第一个参数 是任务列表[]
# 元素是 需要添加  任务包的路径
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])


# worker 其实是一条指令
# celery -A celery实例对象的文件路径 worker -l info

# 这条指令需要在虚拟环境中执行
# celery -A celery_tasks.main worker -l info